#include<etcd/Client.hpp>
#include<etcd/KeepAlive.hpp>
#include<etcd/Response.hpp>
#include<thread>

int main()
{
    std::string etcd_host = "http://127.0.0.1:2379";
    //实例化客户端对象
    etcd::Client client(etcd_host);
    //获取租约保活对象--伴随着创建一个指定有效时长的的租约
    /*
    // 对客户端创建一个指定时长的租约，若租约到期则创建的键值将被撤销
（）
 // 通过租约进行保活探测，若服务提供端掉线，则租约到期后 etcd 会给服
务发现者发送服务下线通知。
     */
    auto keep_alive = client.leasekeepalive(3).get();   //返回的异步结果对象 用get
    //获取租约id
    auto lease_id = keep_alive->Lease(); 
    //向etcd新增数据
        //注册服务
    auto resp1 = client.put("/service/user", "127.0.0.1:8080", lease_id).get();  //返回的异步结果对象 用get
    if(resp1.is_ok() == false)
    {
        std::cout << "新增数据失败" << resp1.error_message() << std::endl;
        return -1;
    }
    auto resp2 = client.put("/service/user", "127.0.0.1:9090", lease_id).get();  //返回的异步结果对象 用get
    if(resp2.is_ok() == false)
    {
        std::cout << "新增数据失败" << resp2.error_message() << std::endl;
        return -1;
    }
    std::this_thread::sleep_for(std::chrono::seconds(10));
    return 0;
} 